from django.db import models

# Create your models here.


class Student(models.Model):
    sex_choicse = ((0,'女'),(1,'男'))
    #                                     auth后台中的备注名
    name = models.CharField(max_length=20,verbose_name="名字")
    #                       null为True允许后端(数据库)为空， blank为True允许前端(填写)为空
    age = models.IntegerField(null=True,blank=True,verbose_name="年龄")
    #                                                                  后端自定义选项
    sex = models.IntegerField(null=True,blank=True,verbose_name="性别",choices=sex_choicse)
    create_time = models.DateTimeField(auto_now_add=True,verbose_name="创建时间")
    update_time = models.DateTimeField(auto_now=True,verbose_name="修改时间")
    #逻辑删除---   不是真正的数据删除 在数据库不显示(有需要可以恢复) default为True认定可以被查询，False不被查询-查询过滤
    is_delete = models.BooleanField(default=False,verbose_name="逻辑删除")
    # 班级表           外键链接     预添加
    classes = models.ForeignKey("Classes",on_delete=models.SET_NULL,null=True)
    class Meta:
        db_table = 'student'
    #逻辑删除方法，对应drfstudy/views/destroy函数(65行)
    def delete(self):
        #修改操作,把使用这个方法的数据修改为逻辑删除
        self.is_delete = True
        self.save()

class Classes(models.Model):
    name = models.CharField(max_length=20,verbose_name="名字")
    slogan = models.TextField(null=True,blank=True,verbose_name="班级口号")
    create_time = models.DateTimeField(auto_now_add=True, verbose_name="创建时间")
    update_time = models.DateTimeField(auto_now=True, verbose_name="修改时间")
    is_delete = models.BooleanField(default=False, verbose_name="逻辑删除")
    class Meta:
        db_table = 'classes'
    #输出魔法方法，在添加班级时显示添加的班级
    def __str__(self):
        return self.name
    #模型对象.方法()  ——模型对象调用自身的方法 修改操作
    def delete(self):
        #修改操作,把使用这个方法的数据修改为逻辑删除
        self.is_delete = True
        self.save()
